home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
mvpforth.arc
/
MVPFORTH.TXT
< prev
next >
Wrap
Text File
|
1986-04-20
|
5KB
|
404 lines
MVPFORTH VERSION 1.0305.02 -10 AUG 82
MVPFORTH KERNEL VERSION 1.0305.02
A FORTH OPERATING SYSSTEM
FORTH THE IBM PERSONAL COMPUTER
PREPARED FOR
MOUNTAIN VIEW PRESS, INC.
PO BOX 4656
MOUNTAIN VIEW, CA 94040
IMPLEMENTATION BY
HAYDON ENTERPRISES
BOX 429 ROUTE 2
LA HONDA, CA 94020
THIS PUBLICATION IS PLACED IN THE PUBLIC
DOMAIN. PERMISSION TO DISTRIBUTE IS GRANTED
BY THE INCLUSION OF CREDIT TO MOUNTAIN VIEW
PRESS, INC., AND HAYDON ENTERPRISES.
THIS IMPLEMENTATION INCLUDES THE ENTIRE
FORTH-79 REQUIRED WORD SET. THE BOOK
"ALL ABOUT FORTH" BY GLEN B. HAYDON FULLY
DOCUMENTS MVPFORTH. IT IS AVAILABLE FROM
MOUNTAIN VIEW PRESS, INC.
THE IMPLEMENTATION HAS BEEN TRANSCRIBED FROM
THE ORIGINAL CROSS COMPILER VER. 1.0000.02 .
IT WILL ASSEMBLE WITH "MASM.COM" UNDER MDOS
VER. 1.0 OR 1.1 .
BECAUSE OF THE TYPE-AHEAD BUFFER OF THE IBM,
?TERMINAL HAS A SLIGHTLY DIFFERENT FUNCTION
FROM STANDARD MVPFORTH. THE TRUE FLAG IS
THE ASCII VALUE OF THE KEY STRUCK (THE FALSE
FLAG REMAINS 0). BY USING ?DUP BEFORE
TESTING, THE VALUE OF THE STRUCK KEY WILL BE
LEFT ON THE STACK. THUS IT IS NOT NECESSARY
TO CLEAR THE STATUS FLAG WITH THE SEQUENCE
- KEY DROP .
THE FORTH REGISTERS ARE ASSIGNED ACCORDING
TO FIG-FORTH FOR THE 8086/88, VERSION 1.0,
AS IMPLEMENTED BY THOMAS NEWMAN, 27444
BERENDA WAY, HAYWARD, CA 94544, AND MADE
AVAILABLE BY THE FORTH INTEREST GROUP,
BOX 1105, SAN CARLOS, CA 94070.
FORTH REGISTERS
FORTH 8088 FORTH PRESERVATION RULES
IP SI INTERPRETER POINTER.
MUST BE PRESERVED
ACROSS FORTH WORDS.
W DX WORKING REGISTER.
JUMP TO 'DPUSH' WILL
PUSH CONTENTS ONTO THE
PARAMETER STACK BEFORE
EXECUTING 'APUSH'.
SP SP PARAMETER STACK POINTER.
MUST BE PRESERVED ACROSS
FORTH WORDS. THIS IS ALSO
THE SYSTEM STACK, WHICH
IS SOMETIMES CALLED THE
HARDWARE STACK -HS .
RP BP RETURN STACK POINTER.
MUST BE PRESERVED ACROSS
FORTH WORDS.
IN ADDITION, THE 8088 CODE SEGMENT, DATA
SEGMENT AND STACK SEGMENT REGISTERS ( CS,
DS, AND SS, MUST BE PRESERVED ACROSS
FORTH WORDS.
THE OTHER REGISTERS OF THE 8088 CPU MAY
BE USED FREELY.
!
!L
#
#>
#BUFF
#S
'
'-FIND
'?TERMINAL
'ABORT
'BLOCK
'CR
'EMIT
'EXPECT
'INTERPRET
'KEY
'LOAD
'NUMBER
'PAGE
'R/W
'STREAM
'T&SCALC
'VOCABULARY
'WORD
(
*
*/
*/MOD
+
+!
+-
+LOOP
,
-
-FIND
-TRAILING
.
."
.LINE
.R
/
/LOOP
/MOD
0
0<
0=
0>
0BRANCH
1
1+
1-
2
2*
2+
2-
2/
79-STANDARD
:
;
<
<#
<+LOOP>
<-FIND>
<.">
</LOOP>
<CODE>
<<CMOVE>
<?TERMINAL> ( ---C , F )
<ABORT">
<ABORT>
<BLOCK>
<CMOVE
<CMOVE>
<DO>
<EMIT>
<EXPECT>
<FILL>
<FIND>
<INTERPRET>
<KEY>
<LINE>
<LOAD>
<LOOP>
<NUMBER>
<PAGE>
<R/W>
<T&SCALC>
<VOCABULARY79>
<VOCABULARYFIG>
<WORD>
=
>
>IN
>R
?
?COMP
?CONFIGURE
?CSP
?DUP
?LOADING
?PAIRS
?STACK
?STREAM
?TREMINAL
@
@L
ABORT
ABORT"
ABS
AGAIN
ALLOT
AND
APUSH
BASE
BEGIN
BL
BLANK
BLK
BLK/DRV
BLOCK
BPDRV
BRANCH
BUFFER
BYE
C!
C!L
C,
C/L
C@
C@L
CFA
CHANGE
CLEAR
CMOVE
COLD
COMPILE
CONFIGURE
CONSTANT
CONTEXT
CONVERT
COUNT
CR
CREATE
CSP
CURRENT
D!
D+
D+-
D.
D.R
DL
DABS
DDROP
DDUP
DECIMAL
DEFINITIONS
DEN
DENSITY
DEPTH
DIGIT
DISK-ERROR
DLITERAL
DNEGATE
DO
DOES>
DP
DPL
DPUSH
DR-DEN
DR0
DR1
DR2
DR3
DR4
DRIVE
DROP
DUP
ELSE
EMIT
EMPTY-BUFFERS
ENCLOSE
EPRINT
EXECUTE
EXIT
EXPECT
FENCE
FILL
FIND
FIRST
FLD
FORGET
FORTH
FREEZE
HERE
HEX
HLD
HOLD
I
I'
IF
IMMEDIATE
INIT-FORTH
INIT-USER
INTCALL
INTERPRET
J
KEY
LATEST
LEAVE
LFA
LIMIT
LIST
LIT
LITERAL
LOAD
LOOP
M*
M*/
M+
M/
M/MOD
MAX
MAX-DRV
MIN
MOD
MOVE
NEGATE
NEXT
NEXT1
NFA
NOT
NUMBER
OFFSET
OR
OUT
OVER
P!
P@
PAD
PAGE
PFA
PICK
PP
PREV
PW!
PW@
QWERY
QUIT
R#
R/W
R0
R>
R@
REPEAT
ROLL
ROT
RP!
RP@
RPP
S->D
S0
SAVE-BUFFERS
SCR
SEC
SEC-READ
SEC-WRITE
SEC/BLK
SEC/TR
SET-DRX
SIGN
SMUDGE
SP!
SP0
SP@
SPACE
SPACES
SPBLK
SPDRV
SPT
STATE
SWAP
SYSCALL
T&SCALC
TEXT
THEN
TIB
TOGGLE
TRACK
TRAVERSE
TYPE
U*
U.
U/MOD
U<
UNITL
UP
UPDATE
USE
USER
VARIABLE
VOC-LINK
VOCABULARY
WARNING
WHERE
WHILE
WIDTH
WORD
X (NULL)
XOR
[
[COMPILE]
]